/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package interfaz;

import java.awt.event.ActionEvent;
import java.sql.SQLException;
import javax.swing.JButton;
import negocio.ProfesorNegocio;
import utilidades.JFondo;
import dominio.Profesor;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
//import static javafx.scene.input.KeyCode.F;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import utilidades.Validaciones;

/**
 *
 * @author Richard
 */
public class JIF_profesor extends javax.swing.JInternalFrame {

    /**
     * Creates new form JIF_insertarAsignatura
     */
    
    
    private JButton JB_insertarProfesor;
   
    private JButton JB_ModificarProfesor;
    private JButton JB_eliminarProfesor;
    
    private ProfesorNegocio profesorNegocio;
    private final int INSERCION = 1;
    private final int MODIFICACION = 2;
    private int opcion;
    
   
    public JIF_profesor() throws SQLException{
        initComponents();
         cargarBotonesDeBarra();
         cargarEventosDeCuadrosDeBusqueda();
         habilitarEspacios(false);
        //JP_insertarAsignatura.setBorder(new JFondo("../imagenes/fondo_2.jpg"));
        llenarTablas();
        habilitarEspacios(false);
        JT_Profesores.setAutoResizeMode(0);

    }
    

     private void llenarTablas() throws SQLException {
         profesorNegocio= new ProfesorNegocio();
         
        JT_Profesores.setModel(profesorNegocio.getProfesores(""));
        
      
     
        /*if (JT_Profesores.getRowCount() > 0) {
            JT_Profesores.getColumn("Nivel").setPreferredWidth(0);
           JT_Profesores.getColumn("Nivel").setMinWidth(0);
            JT_Profesores.getColumn("Nivel").setMinWidth(0);
            JT_Profesores.getColumn("Nivel").setMinWidth(0);
            JT_Profesores.getColumn("Nivel").setMinWidth(0);
            JT_Profesores.getColumn("Nivel").setMinWidth(0);
            JT_Profesores.getColumn("Nivel").setMinWidth(0);
            JT_Profesores.getColumn("Nivel").setMinWidth(0);
            JT_Profesores.getColumn("Nivel").setMinWidth(0);
            JT_Profesores.getColumn("Nivel").setMinWidth(0);
            JT_Profesores.getColumn("Nivel").setMinWidth(0);
            JT_Profesores.getColumn("Nivel").setMinWidth(0);
            JT_Profesores.getColumn("Nivel").setMinWidth(0);

        }*/
    }
     
     
       private void quitarSeleccionProfesor() {
        int row = JT_Profesores.getSelectedRow();
        if (row >= -1) {
            JT_Profesores.clearSelection();
        }
    }
       
       private void limiparEspacios() {
        
        JTF_Apellidos.setText("");
        JTF_Celular.setText("");
        JTF_Ciudad.setText("");   
        JTF_Direccion.setText("");
        JTF_Email.setText("");
        JTF_Fecha.setText("");        
        JTF_Identificacion.setText("");
        JTF_Nombre.setText("");
        JTF_Telefono.setText("");        
        JTF_categoria.setText("");
        JTF_CantidadLecciones.setText("");
        
    }
       
       private void habilitarEspacios(boolean valor) {
                    
        JTF_Apellidos.setEditable(valor);
        JTF_Celular.setEditable(valor);
        JTF_Ciudad.setEditable(valor);
        JTF_Direccion.setEditable(valor);
        JTF_Email.setEditable(valor);
        JTF_Fecha.setEditable(valor);
        JTF_Identificacion.setEditable(valor);
        JTF_Nombre.setEditable(valor);
        JTF_CantidadLecciones.setEditable(valor);
        JTF_Telefono.setEditable(valor);
        JTF_categoria.setEditable(valor);
        JB_Cancelar.setVisible(valor);
    }
       
       
       
        private void actualizarCamposProfesor() {
        habilitarEspacios(false);
   
        int indice = JT_Profesores.getSelectedRow();
        if (indice > -1) {
            JTF_Identificacion.setText(JT_Profesores.getValueAt(indice, 0).toString());
           
        }
    }
     
     private void cargarBotonesDeBarra() {
        JB_insertarProfesor = new JButton("Registrar");
        JB_ModificarProfesor = new JButton("Modificar");
        JB_eliminarProfesor = new JButton("Eliminar");
        JMB_barraMenuProfesores.add(JB_insertarProfesor);
        JB_insertarProfesor.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                opcion = INSERCION;
            quitarSeleccionProfesor();
           
            limiparEspacios();
            habilitarEspacios(true);
            }
        });
        /*JB_insertarProfesor.addActionListener((ActionEvent ae) -> {
            opcion = INSERCION;
            quitarSeleccionProfesor();
           
            limiparEspacios();
            habilitarEspacios(true);

        });*/

        
        
               JMB_barraMenuProfesores.add(JB_ModificarProfesor);
               JB_ModificarProfesor.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                int indiceProfesores = JT_Profesores.getSelectedRow();
            
            if (indiceProfesores > -1) {
                opcion = MODIFICACION;
                 quitarSeleccionProfesor();
                 habilitarEspacios(true);
                JTF_Identificacion.setEditable(false);
            } else {
                JOptionPane.showMessageDialog(null, "Debe seleccionar la Profesor a modificar");
            }
            }
        });
        /*JB_ModificarProfesor.addActionListener((ActionEvent ae) -> {
            int indiceProfesores = JT_Profesores.getSelectedRow();
            
            if (indiceProfesores > -1) {
                opcion = MODIFICACION;
                 quitarSeleccionProfesor();
                 habilitarEspacios(true);
                JTF_Identificacion.setEditable(false);
            } else {
                JOptionPane.showMessageDialog(null, "Debe seleccionar la Profesor a modificar");
            }

        });*/
        
        JMB_barraMenuProfesores.add(JB_eliminarProfesor);
        JB_eliminarProfesor.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {

                int indiceProfesor = JT_Profesores.getSelectedRow();

                if (indiceProfesor > -1 || indiceProfesor > -1) {
                    borrarProfesor();
                } else {
                    JOptionPane.showMessageDialog(null, "Debe seleccionar un profesor  para borrar");
                }
            }
        });
        /*JB_eliminarProfesor.addActionListener((ActionEvent ae) -> {
            eliminarProfesor();
        });*/
        
        
    }// Fin cargarBotonesDeBarra()
     
     
        private void cargarEventosDeCuadrosDeBusqueda() {
        JTF_buscarProfesor.getDocument().addDocumentListener(new DocumentListener() {

            @Override
            public void insertUpdate(DocumentEvent de) {
                try {
                    JT_Profesores.setModel(profesorNegocio.getProfesores(JTF_buscarProfesor.getText()));
                } catch (SQLException ex) {
                }
            }

            @Override
            public void removeUpdate(DocumentEvent de) {
                try {
                    JT_Profesores.setModel(profesorNegocio.getProfesores(JTF_buscarProfesor.getText()));
                } catch (SQLException ex) {
                }
            }

            @Override
            public void changedUpdate(DocumentEvent de) {
                try {
                    JT_Profesores.setModel(profesorNegocio.getProfesores(JTF_buscarProfesor.getText()));
                } catch (SQLException ex) {
                }
            }

        });

        JT_Profesores.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

            @Override
            public void valueChanged(ListSelectionEvent e) {
                actualizarCamposProfesores();
            }
        });
        /*JT_asignaturasAcademicas.getSelectionModel().addListSelectionListener((ListSelectionEvent lse) -> {
         actualizarCamposAsignaturaAcademica();
         });*/

        JT_Profesores.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent e) {
                quitarSeleccionProfesor();
            }
        });

    }

            private void actualizarCamposProfesores() {
        habilitarEspacios(false);

        
        int indice = JT_Profesores.getSelectedRow();
        if (indice > -1) {
            JTF_Identificacion.setText(JT_Profesores.getValueAt(JT_Profesores.getSelectedRow(),0).toString());
            JTF_Nombre.setText(JT_Profesores.getValueAt(JT_Profesores.getSelectedRow(),1).toString());
            JTF_Apellidos.setText(JT_Profesores.getValueAt(JT_Profesores.getSelectedRow(),2).toString());
            JTF_Direccion.setText(JT_Profesores.getValueAt(JT_Profesores.getSelectedRow(),3).toString());
            JTF_Ciudad.setText(JT_Profesores.getValueAt(JT_Profesores.getSelectedRow(),4).toString());
            JTF_Celular.setText(JT_Profesores.getValueAt(JT_Profesores.getSelectedRow(),5).toString());
            JTF_Telefono.setText(JT_Profesores.getValueAt(JT_Profesores.getSelectedRow(),6).toString());
            JTF_Email.setText(JT_Profesores.getValueAt(JT_Profesores.getSelectedRow(),7).toString());
            JTF_Fecha.setText(JT_Profesores.getValueAt(JT_Profesores.getSelectedRow(),8).toString());
            JTF_CantidadLecciones.setText(JT_Profesores.getValueAt(JT_Profesores.getSelectedRow(),9).toString());
            JTF_categoria.setText(JT_Profesores.getValueAt(JT_Profesores.getSelectedRow(),10).toString());
            JCB_Plaza.setSelectedItem((JT_Profesores.getValueAt(JT_Profesores.getSelectedRow(),11).toString()));
           
        
          
        }
    }
            

              private void borrarProfesor() {
                  
                   int identificacion = Integer.parseInt(JT_Profesores.getValueAt(JT_Profesores.getSelectedRow(),0).toString());
       
        try {
            profesorNegocio.borrarProfesor(identificacion);
            limiparEspacios();
            llenarTablas();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "No se pudo borrar los datos del profesor");
        }
    }

       private void insertarProfesor() throws SQLException, ParseException {
        
        int identificacion = Integer.parseInt(JTF_Identificacion.getText());
        String nombre = JTF_Nombre.getText();
        String apellidos = JTF_Apellidos.getText();
        String direccion = JTF_Direccion.getText();
        String ciudad = JTF_Ciudad.getText();
        int celular = Integer.parseInt(JTF_Celular.getText());
        int telefono = Integer.parseInt(JTF_Telefono.getText());
        String email = JTF_Email.getText();
        Date fecha= Validaciones.pasarTextoAfecha(JTF_Fecha.getText());
        
        int cantidadLecciones = Integer.parseInt(JTF_CantidadLecciones.getText());
        String categoria = JTF_categoria.getText();
       
        boolean esPropiedad = false;
        if (JCB_Plaza.getSelectedItem() == "Fija") {
            esPropiedad = true;
        }
        
        if (Validaciones.cadenasStringValidas(ciudad, nombre,apellidos,direccion, ciudad,email)) {
            Profesor profesor = new Profesor();
            profesor.setIdentificacion(identificacion);
            profesor.setPrimerNombre(nombre);
            profesor.setApellidos(apellidos);
            profesor.setDireccion(direccion);
            profesor.setCiudad(ciudad);
            profesor.setNumeroCelular(celular);
            profesor.setTelefonoCasa(telefono);
            profesor.setEmail(email);
            profesor.setFechaNacimiento(fecha);
            profesor.setCantidadLecciones(cantidadLecciones);
            profesor.setCategoria(categoria);
            profesor.setPropiedad(esPropiedad);
              
            profesorNegocio.insertarProfesor(profesor); 
            limiparEspacios();
            habilitarEspacios(false);
            llenarTablas();
        } else {
            JOptionPane.showMessageDialog(null, "El profesor nu fue registrado correctamente");
        }

    }
       
       
         private void actualizarProfesor() throws SQLException, ParseException {
        
        int identificacion = Integer.parseInt(JTF_Identificacion.getText());
        String nombre = JTF_Nombre.getText();
        String apellidos = JTF_Apellidos.getText();
        String direccion = JTF_Direccion.getText();
        String ciudad = JTF_Ciudad.getText();
        int celular = Integer.parseInt(JTF_Celular.getText());
        int telefono = Integer.parseInt(JTF_Telefono.getText());
        String email = JTF_Email.getText();
        Date fecha= Validaciones.pasarTextoAfecha(JTF_Fecha.getText());
        int cantidadLecciones = Integer.parseInt(JTF_CantidadLecciones.getText());
        String categoria = JTF_categoria.getText();
       
        boolean esPropiedad = false;
        if (JCB_Plaza.getSelectedItem() == "Fija") {
            esPropiedad = true;
        }
        
       
        if (Validaciones.cadenasStringValidas(ciudad, nombre,apellidos,direccion, ciudad,email)) {
            Profesor profesor = new Profesor();
            profesor.setIdentificacion(identificacion);
            profesor.setPrimerNombre(nombre);
            profesor.setApellidos(apellidos);
            profesor.setDireccion(direccion);
            profesor.setCiudad(ciudad);
            profesor.setNumeroCelular(celular);
            profesor.setTelefonoCasa(telefono);
            profesor.setEmail(email);
            profesor.setFechaNacimiento(fecha);
            profesor.setCantidadLecciones(cantidadLecciones);
            profesor.setCategoria(categoria);
            profesor.setPropiedad(esPropiedad);
            profesorNegocio.actualizarProfesor(profesor);
            limiparEspacios();
            habilitarEspacios(false);
            llenarTablas();
        } else {
            JOptionPane.showMessageDialog(null, "Algunos datos no se ingresaron correctamente");
        }

    }
       

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        JMB_Profesor = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenu2 = new javax.swing.JMenu();
        jMenuBar2 = new javax.swing.JMenuBar();
        jMenu3 = new javax.swing.JMenu();
        jMenu4 = new javax.swing.JMenu();
        JP_insertarAsignatura = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        JTF_Identificacion = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        JTF_Nombre = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        JTF_Apellidos = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();
        JTF_Direccion = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        JTF_Ciudad = new javax.swing.JTextField();
        jLabel7 = new javax.swing.JLabel();
        JTF_Celular = new javax.swing.JTextField();
        jLabel8 = new javax.swing.JLabel();
        JTF_Telefono = new javax.swing.JTextField();
        jLabel9 = new javax.swing.JLabel();
        JTF_Email = new javax.swing.JTextField();
        jLabel10 = new javax.swing.JLabel();
        JTF_Fecha = new javax.swing.JTextField();
        jLabel11 = new javax.swing.JLabel();
        JTF_CantidadLecciones = new javax.swing.JTextField();
        jLabel12 = new javax.swing.JLabel();
        JCB_Plaza = new javax.swing.JComboBox();
        jLabel13 = new javax.swing.JLabel();
        JTF_categoria = new javax.swing.JTextField();
        JB_Aceptar = new javax.swing.JButton();
        JB_Cancelar = new javax.swing.JButton();
        JP_Profesor = new javax.swing.JPanel();
        jLabel14 = new javax.swing.JLabel();
        jLabel15 = new javax.swing.JLabel();
        JTF_buscarProfesor = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        JT_Profesores = new javax.swing.JTable();
        JMB_barraMenuProfesores = new javax.swing.JMenuBar();

        jMenu1.setText("File");
        JMB_Profesor.add(jMenu1);

        jMenu2.setText("Edit");
        JMB_Profesor.add(jMenu2);

        jMenu3.setText("File");
        jMenuBar2.add(jMenu3);

        jMenu4.setText("Edit");
        jMenuBar2.add(jMenu4);

        setBackground(new java.awt.Color(255, 255, 255));
        setClosable(true);
        setTitle("Mantenimiento Profesor");
        setAutoscrolls(true);
        setMaximumSize(new java.awt.Dimension(1000, 500));
        setMinimumSize(new java.awt.Dimension(100, 50));
        setName(""); // NOI18N
        setPreferredSize(new java.awt.Dimension(1000, 500));

        JP_insertarAsignatura.setBackground(new java.awt.Color(255, 255, 255));

        jLabel1.setText("Datos de Profesor");

        jLabel2.setText("Identificación:");

        JTF_Identificacion.setToolTipText("");

        jLabel3.setText("Nombre:");

        JTF_Nombre.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                JTF_NombreActionPerformed(evt);
            }
        });

        jLabel4.setText("Apellidos:");

        jLabel5.setText("Dirección:");

        jLabel6.setText("Ciudad:");

        JTF_Ciudad.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                JTF_CiudadActionPerformed(evt);
            }
        });

        jLabel7.setText("Número célular:");

        jLabel8.setText("Télefono casa:");

        jLabel9.setText("Email:");

        jLabel10.setText("Fecha Nacimiento:");

        jLabel11.setText("Cantidad lecciones:");

        jLabel12.setText("Plaza:");

        JCB_Plaza.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Fija", "No Fija" }));

        jLabel13.setText("Categoría:");

        JTF_categoria.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                JTF_categoriaActionPerformed(evt);
            }
        });

        JB_Aceptar.setText("Aceptar");
        JB_Aceptar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                JB_AceptarActionPerformed(evt);
            }
        });

        JB_Cancelar.setText("Cancelar");
        JB_Cancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                JB_CancelarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout JP_insertarAsignaturaLayout = new javax.swing.GroupLayout(JP_insertarAsignatura);
        JP_insertarAsignatura.setLayout(JP_insertarAsignaturaLayout);
        JP_insertarAsignaturaLayout.setHorizontalGroup(
            JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(JP_insertarAsignaturaLayout.createSequentialGroup()
                .addGap(26, 26, 26)
                .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(JP_insertarAsignaturaLayout.createSequentialGroup()
                        .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(JP_insertarAsignaturaLayout.createSequentialGroup()
                                .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabel7)
                                    .addComponent(jLabel8)
                                    .addComponent(jLabel9))
                                .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(JP_insertarAsignaturaLayout.createSequentialGroup()
                                        .addGap(20, 20, 20)
                                        .addComponent(JTF_Telefono, javax.swing.GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(JP_insertarAsignaturaLayout.createSequentialGroup()
                                        .addGap(19, 19, 19)
                                        .addComponent(JTF_Celular, javax.swing.GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(JP_insertarAsignaturaLayout.createSequentialGroup()
                                        .addGap(20, 20, 20)
                                        .addComponent(JTF_Email, javax.swing.GroupLayout.PREFERRED_SIZE, 216, javax.swing.GroupLayout.PREFERRED_SIZE))))
                            .addComponent(jLabel1)
                            .addGroup(JP_insertarAsignaturaLayout.createSequentialGroup()
                                .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabel2)
                                    .addComponent(jLabel3)
                                    .addComponent(jLabel4)
                                    .addComponent(jLabel5)
                                    .addComponent(jLabel6))
                                .addGap(18, 18, 18)
                                .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(JTF_Nombre, javax.swing.GroupLayout.PREFERRED_SIZE, 143, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(JTF_Identificacion, javax.swing.GroupLayout.PREFERRED_SIZE, 122, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(JTF_Apellidos, javax.swing.GroupLayout.PREFERRED_SIZE, 216, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(JTF_Direccion, javax.swing.GroupLayout.PREFERRED_SIZE, 267, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(JTF_Ciudad, javax.swing.GroupLayout.PREFERRED_SIZE, 122, javax.swing.GroupLayout.PREFERRED_SIZE))))
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addGroup(JP_insertarAsignaturaLayout.createSequentialGroup()
                        .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addGroup(JP_insertarAsignaturaLayout.createSequentialGroup()
                                .addComponent(jLabel10)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(JTF_Fecha, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, JP_insertarAsignaturaLayout.createSequentialGroup()
                                .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(jLabel11)
                                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, JP_insertarAsignaturaLayout.createSequentialGroup()
                                            .addComponent(jLabel13)
                                            .addGap(42, 42, 42)))
                                    .addComponent(jLabel12))
                                .addGap(20, 20, 20)
                                .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(JCB_Plaza, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(JTF_categoria)
                                        .addGroup(JP_insertarAsignaturaLayout.createSequentialGroup()
                                            .addComponent(JTF_CantidadLecciones, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addGap(0, 0, Short.MAX_VALUE))))))
                        .addGap(31, 31, 31)
                        .addComponent(JB_Aceptar)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(JB_Cancelar)
                        .addGap(22, 22, 22))))
        );
        JP_insertarAsignaturaLayout.setVerticalGroup(
            JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(JP_insertarAsignaturaLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(JTF_Identificacion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(9, 9, 9)
                .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(JTF_Nombre, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(9, 9, 9)
                .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(JTF_Apellidos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel5)
                    .addComponent(JTF_Direccion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel6)
                    .addComponent(JTF_Ciudad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(8, 8, 8)
                .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel7)
                    .addComponent(JTF_Celular, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel8)
                    .addComponent(JTF_Telefono, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel9)
                    .addComponent(JTF_Email, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel10)
                    .addComponent(JTF_Fecha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel11)
                    .addComponent(JTF_CantidadLecciones, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(2, 2, 2)
                .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel13)
                    .addComponent(JTF_categoria, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(JP_insertarAsignaturaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel12)
                    .addComponent(JCB_Plaza, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(JB_Aceptar)
                    .addComponent(JB_Cancelar))
                .addGap(18, 25, Short.MAX_VALUE))
        );

        JP_Profesor.setBackground(new java.awt.Color(255, 255, 255));
        JP_Profesor.setAutoscrolls(true);

        jLabel14.setText("Profesores");

        jLabel15.setText("Buscar:");

        JTF_buscarProfesor.setName(""); // NOI18N

        JT_Profesores.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {},
                {},
                {},
                {}
            },
            new String [] {

            }
        ));
        JT_Profesores.setShowHorizontalLines(false);
        jScrollPane1.setViewportView(JT_Profesores);

        javax.swing.GroupLayout JP_ProfesorLayout = new javax.swing.GroupLayout(JP_Profesor);
        JP_Profesor.setLayout(JP_ProfesorLayout);
        JP_ProfesorLayout.setHorizontalGroup(
            JP_ProfesorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, JP_ProfesorLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(JP_ProfesorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jScrollPane1)
                    .addGroup(JP_ProfesorLayout.createSequentialGroup()
                        .addGap(0, 307, Short.MAX_VALUE)
                        .addComponent(jLabel15)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(JTF_buscarProfesor, javax.swing.GroupLayout.PREFERRED_SIZE, 128, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, JP_ProfesorLayout.createSequentialGroup()
                        .addComponent(jLabel14)
                        .addGap(0, 0, Short.MAX_VALUE)))
                .addContainerGap())
        );
        JP_ProfesorLayout.setVerticalGroup(
            JP_ProfesorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(JP_ProfesorLayout.createSequentialGroup()
                .addGap(19, 19, 19)
                .addComponent(jLabel14)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(JP_ProfesorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel15)
                    .addComponent(JTF_buscarProfesor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 228, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        JMB_barraMenuProfesores.setMaximumSize(new java.awt.Dimension(1000, 20));
        JMB_barraMenuProfesores.setMinimumSize(new java.awt.Dimension(1000, 20));
        JMB_barraMenuProfesores.setPreferredSize(new java.awt.Dimension(900, 20));
        setJMenuBar(JMB_barraMenuProfesores);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(JP_Profesor, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGap(18, 18, 18)
                .addComponent(JP_insertarAsignatura, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(JP_insertarAsignatura, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(JP_Profesor, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap(47, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void JB_CancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JB_CancelarActionPerformed
        try {
            limiparEspacios();
            habilitarEspacios(false);
            llenarTablas();
        } catch (SQLException ex) {
        }
    }//GEN-LAST:event_JB_CancelarActionPerformed

    private void JB_AceptarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JB_AceptarActionPerformed
        // TODO add your handling code here:
        if (opcion == INSERCION) {
            try {
                insertarProfesor();
            } catch (SQLException ex) {
                JOptionPane.showMessageDialog(null, ex);
            } catch (ParseException ex) {
                Logger.getLogger(JIF_profesor.class.getName()).log(Level.SEVERE, null, ex);
            }
        } else {
            try {
                actualizarProfesor();
            } catch (SQLException ex) {
                JOptionPane.showMessageDialog(null, ex);
            } catch (ParseException ex) {
                Logger.getLogger(JIF_profesor.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }//GEN-LAST:event_JB_AceptarActionPerformed

    private void JTF_categoriaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_categoriaActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_JTF_categoriaActionPerformed

    private void JTF_CiudadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_CiudadActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_JTF_CiudadActionPerformed

    private void JTF_NombreActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JTF_NombreActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_JTF_NombreActionPerformed


    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton JB_Aceptar;
    private javax.swing.JButton JB_Cancelar;
    private javax.swing.JComboBox JCB_Plaza;
    private javax.swing.JMenuBar JMB_Profesor;
    private javax.swing.JMenuBar JMB_barraMenuProfesores;
    private javax.swing.JPanel JP_Profesor;
    private javax.swing.JPanel JP_insertarAsignatura;
    private javax.swing.JTextField JTF_Apellidos;
    private javax.swing.JTextField JTF_CantidadLecciones;
    private javax.swing.JTextField JTF_Celular;
    private javax.swing.JTextField JTF_Ciudad;
    private javax.swing.JTextField JTF_Direccion;
    private javax.swing.JTextField JTF_Email;
    private javax.swing.JTextField JTF_Fecha;
    private javax.swing.JTextField JTF_Identificacion;
    private javax.swing.JTextField JTF_Nombre;
    private javax.swing.JTextField JTF_Telefono;
    private javax.swing.JTextField JTF_buscarProfesor;
    private javax.swing.JTextField JTF_categoria;
    private javax.swing.JTable JT_Profesores;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenu jMenu3;
    private javax.swing.JMenu jMenu4;
    private javax.swing.JMenuBar jMenuBar2;
    private javax.swing.JScrollPane jScrollPane1;
    // End of variables declaration//GEN-END:variables
}

